/** Header File: server.h **/

/** Variables **/
#define SERVER_ARG_FILE "server.in"

typedef struct serverArgumentsType {
  int portNumber;
  int sendingWindowSize;
} serverArgumentsType;

typedef struct socketDiscriptors {
  int* sockfd;
  char** ipAddressBounded;
  char** networkMask;
  char** subnetAddress;
  int discriptorCount;
} socketDiscriptors;

/** Methods **/
int main(int argc, char **argv);
struct serverArgumentsType serverArgumentProcessing();
struct socketDiscriptors bindServerAddresses(int portNumber);
void monitorSockets(socketDiscriptors socketDiscriptors);
void serverTransfer(int sockfd, const struct sockaddr_in *destaddr, socklen_t clilen, char* message, uint32_t seq, ssize_t* recvSize);



